﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Network.Messages.LiveControl
{
    /// <summary>
    /// Defines the Nova protocol message types, for the File Explorer module.
    /// </summary>
    public enum CustomMessageType : ushort
    {
        RequestScreenshotMessage = 5000,
        ResponseBeginScreenshotMessage,
        ResponseScreenshotMessage,
        ResponseEndScreenshotMessage,
        ResponseEmptyScreenshotMessage,
        MouseMoveMessage,
        MouseClickMessage,
        MouseDownMessage,
        MouseUpMessage,
        MouseDoubleClickMessage,
        MouseScrollMessage,
        KeyDownMessage,
        KeyPressMessage,
        KeyUpMessage,
        ResponseTime,

        //单窗共享相关
        RequestProccessListMessage,
        ResponseProccessListMessage,
        ResponseRectChangeMessage,
        ResponseRectListMessage,

        GetWindowFormPointMessage,
        ResponseCurrentProcPtr,
        RequestClearRectMessage,

        //告知客户端，服务端现在的状态信息
        ServerStatusMessage,
        RequsetScreenRectMessage,
        ResponseScreenRectMessage,

        CursorMessage,
        KnowladgeServerMachineShutDown,

        ResponseFullScreenshotMessage,

        #region 多窗控制

        /// <summary>
        /// 请求获取可被共享的窗体列表
        /// </summary>
        C2SRequestShareFormListMessage,
        /// <summary>
        /// 通知服务端，该客户端下线了，如果是控制锁持有者，
        /// 那么服务端可以回收控制锁了
        /// </summary>
        C2STellServerClientDisconnectMessage,
        /// <summary>
        /// 请求控制权
        /// </summary>
        C2SRequestControlMessge,
        /// <summary>
        /// 控制锁持有者的回复
        /// </summary>
        C2SResponseControlResultMessge,
        /// <summary>
        /// 强行请求控制权，不经过控制锁持有者确认
        /// </summary>
        C2SRequestControlForceMessge,
        /// <summary>
        /// 连接到窗口
        /// </summary>
        C2SConnectFormMessage,

        /// <summary>
        /// 恢复显示被最小化的窗口
        /// </summary>
        C2SReshowMinisizeFormMessage,

        /// <summary>
        /// 通知客户端窗口被关掉了
        /// </summary>
        S2CTellClientFormClosedMessage,
        /// <summary>
        /// 通知客户端窗口被最小化了
        /// </summary>
        S2CTellClientFormMinisizedMessage,
        /// <summary>
        /// 回馈可共享的窗口列表
        /// </summary>
        S2CResponseShareFormListMessage,
        /// <summary>
        /// 请求回收权限
        /// </summary>
        S2CRequestRecoverControlMessage,
        /// <summary>
        /// 回馈权限回收结果
        /// </summary>
        S2CResponseControlResultMessage,
        /// <summary>
        /// 告诉客户端你的控制权已经被回收
        /// </summary>
        S2CTellClientYourControlBeRecoveredMessage,
        /// <summary>
        /// 告诉客户端你获得了控制权
        /// </summary>
        S2CTellClientYouGetTheControl,
        /// <summary>
        /// 告诉客户端有单窗发生了变化。
        /// </summary>
        S2CTellClientFormItemUpdate,

        /// <summary>
        /// 拒绝了点击操作
        /// </summary>
        S2CRefuseControlMessage,

        /// <summary>
        /// 拒绝了控制请求
        /// </summary>
        S2CRefuseControlApplyMessage,

        /// <summary>
        /// 改变窗口显示状态
        /// </summary>
        C2SChangeWindowStatusMessage,
        
        #endregion


    }
}
